home *** CD-ROM | disk | FTP | other *** search
/ Atari Forever 4 / Atari Forever 4.zip / Atari Forever 4.iso / SERIE_AI / AI_029 / RDXFS_R1.LZH / archive.lzh / pc_xfs / sogehts.txt < prev   
Text File  |  1996-04-09  |  7KB  |  166 lines

  1. Das Pure-C-Interface für die XFS-Schnittstelle von MagiC >= 3
  2. -------------------------------------------------------------
  3.  
  4.  
  5. 1. Einleitung
  6. -------------
  7.  
  8. Durch die komplette Realsierung der XFS-Schnittstelle von MagiC in 
  9. Assembler ist diese zwar schnell, aber auch sehr unkomfortabel. Mit 
  10. diesem "Frontend" wird es möglich, ein XFS für MagiC komplett mit Pure 
  11. C zu erstellen. Zu diesem Zweck meldet das Interface ein Pseudo-XFS an, 
  12. dessen Funktionen nichts weiter tun als die Parameter Pure-C-gerecht 
  13. aufzubereiten und dann ihr C-Äquivalent aufzurufen. Umgekehrt stellt 
  14. das Interface Assemblerroutinen zur Verfügung, mit denen die 
  15. Kernelfunktionen direkt aus Pure-C-Routinen heraus aufgerufen werden 
  16. können.
  17.  
  18. Durch diese Vorgehensweise geht zwar ein wenig Zeit durch die 
  19. Umwandlung und Weiterleitung verloren, es wird mir jedoch sicherlich 
  20. (fast) jeder zustimmen, daß es einfacher und bequemer ist, ein 
  21. Filesystem in C zu entwickeln, als dies direkt in Assembler zu tun.
  22.  
  23. Man kann mit dem Pure-C-Interface nur einzelne Filesysteme erstellen, 
  24. also nicht zwei in ein Programm packen. Allerdings sollte das keine 
  25. echte Einschränkung darstellen, denn in der Regel wird man ja jedes 
  26. Filesystem als eigenständiges Programm entwicklen.
  27.  
  28. Es ist erlaubt, Filesysteme, die mit diesem Interface erstellt wurden, 
  29. in beliebiger Form zu verbreiten, d.h. sie dürfen als Free-, Share- 
  30. oder Löhnware vertrieben werden. Zu den genauen Bedingungen hierzu 
  31. steht in Abschnitt 3 genaueres.
  32.  
  33.  
  34. 2. Benutzung
  35. ------------
  36.  
  37. Im Prinzip ist es ganz einfach, das Interface zu benutzen. Man geht am 
  38. besten schrittweise vor:
  39.  
  40. 1. Projektfile erstellen, das den gewöhnlichen Pure-C-Startupcode 
  41.    benutzt (pcstart.o) und pc_xfs.s als zu compilierenden Quellcode 
  42.    enthält. Libraries wie benötigt einbinden (natürlich kein GEM, in 
  43.    der Regel werden also pcstdlib.lib und pctoslib.lib ausreichen).
  44. 2. In jedem der eigentlichen Quellcodes des zu schreibenden Filesystems 
  45.    muß pc_xfs.h eingebunden werden, damit die notwendigen Deklarationen 
  46.    und externen Variablen zur Verfügung stehen.
  47. 3. In einem der C-Quellcodes muß je eine Variable bzw. Struktur des 
  48.    Typs THE_MGX_DEV und THE_MGX_XFS definiert werden; die einzelnen 
  49.    Elemente sind dabei die C-Funktionen, die die jeweilige Filesystem- 
  50.    bzw. Gerätetreiberaufgabe übernehmen. Welche das genau sind, 
  51.    entnimmt man am besten der MagiC-Doku und den Deklarationen in 
  52.    pc_xfs.h
  53. 4. Zu Beginn sollten alle Filesystem- und Gerätetreiberfunktionen als 
  54.    Leerfunktionen angelegt werden, die nur EINVFN zurückliefern. Im 
  55.    Laufe der Entwicklung kann man sie dann der Reihe nach mit Leben 
  56.    füllen.
  57. 5. Die Anmeldung des Filesystems geschieht über die Funktion 
  58.    install_xfs, der man den Zeiger auf die unter 3. genannte Variable 
  59.    des Typs THE_MGX_XFS übergibt (die Elemente der Struktur müssen 
  60.    dabei natürlich schon belegt sein, also die korrekten 
  61.    Funktionszeiger enthalten). Als Ergebnis erhält man den Zeiger auf 
  62.    die Interface-interne Version der MagiC-Kernelstruktur, oder NULL, 
  63.    wenn etwas nicht geklappt haben sollte. Diese Struktur wird 
  64.    gebraucht, um die Funktionen aus der Kernelstruktur aufzurufen; 
  65.    Variablen sollten immer aus der "echten" Struktur ausgelesen werden, 
  66.    deren Zeiger in der externen Variable real_kernel zu finden ist. 
  67.    Nach erfolgreicher Installation muß sich das C-Programm mit Ptermres 
  68.    beenden.
  69. 6. Bei drv_open muß man den Zeiger auf die Filesystemstruktur in den 
  70.    DMD eintragen; dies darf jedoch nicht die C-Struktur sein, da sie 
  71.    nicht die ist, die vom Kernel angesprochen wird. Für d_xfs muß immer 
  72.    real_xfs eingetragen werden, ein externer Zeiger auf das Pseudo-XFS 
  73.    des Assemblerteils, sonst geht's schief!
  74.  
  75. Als Anschauungsobjekt kann dabei der Quellcode des Ramdisk-XFS dienen, 
  76. der der Originaldistribution beiliegt. Es ist auch sehr ratsam, sich 
  77. die Datei pc_xfs.h aufmerksam anzuschauen und die Kommentare zu lesen. 
  78. Wer Fragen hat, kann sich gerne an mich wenden, meine Adresse steht in 
  79. Abschnitt 5.
  80.  
  81.  
  82. 3. Rechtliches
  83. --------------
  84.  
  85. Das Pure-C-Interface wurde mit großer Sorgfalt entwickelt und eingehend 
  86. getestet. Dennoch kann ich nicht ausschließen, daß es noch Fehler 
  87. enthält. Ich, Thomas Binder, kann daher weder für die einwandfreie 
  88. Funktionsfähigkeit, noch für die Tauglichkeit zu einem bestimmten Zweck 
  89. garantieren.
  90.  
  91. Darüberhinaus erfolgt die Benutzung des Pure-C-Interfaces und aller 
  92. damit erstellter Filesysteme auf eigene Gefahr! Ich übernehme keinerlei 
  93. Haftung für Schäden jeglicher Art, die direkt oder indirekt durch die 
  94. sach- oder unsachgemäße Anwendung des Pure-C-Interfaces oder damit 
  95. erstellter Filesysteme entstanden sind oder entstanden sein könnten.
  96.  
  97. Sollte jemand einen Fehler gefunden haben, bitte ich um eine 
  98. detailierte Mitteilung, meine Adresse steht in Abschnitt 5.
  99.  
  100. Wer eigene Filesysteme erstellt hat, die auf dem Pure-C-Interface 
  101. basieren, kann diese nach seinen Vorstellungen vermarkten, also als 
  102. Freeware, Shareware, Löhnware, etc. Allerdings müssen folgende 
  103. Bedingungen strikt eingehalten werden:
  104.  
  105. 1. In der Startmeldung des Filesystems und in der Dokumentation muß 
  106.    deutlich sichtbar der Hinweis erscheinen, daß es mit Hilfe des Pure-
  107.    C-Interfaces von Thomas Binder erstellt wurde.
  108. 2. Die Dokumentation muß ebenso deutlich klarstellen, daß ich nicht für 
  109.    die korrekte Funktion des Filesystems verantwortlich gemacht werden 
  110.    kann und keine Haftung übernehme.
  111.  
  112. Außerdem fände ich es sehr nett, wenn ich in diesem Fall eine kleine 
  113. Mitteilung samt Spende erhielte. Näheres im übernächsten Abschnitt.
  114.  
  115.  
  116. 4. Kopierbedinungen
  117. -------------------
  118.  
  119. Das Pure-C-Interface darf frei kopiert und benutzt werden, solange alle 
  120. Dateien (mgx_xfs.inc, pc_xfs.h, pc_xfs.inc, pc_xfs.s und sogehts.txt) 
  121. komplett und unverändert weitergegeben werden (Archivierung ist 
  122. erlaubt).
  123.  
  124. Die Originaldistribution erfolgt immer im Rahmen meines Ramdisk-
  125. Filesystems für MagiC >= 3, zusammen mit einem PGP-Signaturfile, damit 
  126. man sicherstellen kann, unveränderte Originaldateien zu haben. Meinen 
  127. öffentlichen Schlüssel gibt es auf Anfrage.
  128.  
  129.  
  130. 5. Kontakt mit dem Autor
  131. ------------------------
  132.  
  133. Wer Fehler gefunden oder Fragen hat, meinen öffentlichen PGP-Schlüssel 
  134. haben will, Vorschläge oder Kritik loswerden möchte oder einfach nur 
  135. mit mir "reden" will, kann diese Adresse benutzen:
  136.  
  137. Thomas Binder
  138. Johann-Valentin-May-Straße 7
  139. 64665 Alsbach-Hähnlein
  140. Deutschland
  141.  
  142. Per EMail bin ich im InterNet über folgende Adressen erreichbar:
  143.  
  144. binder@rbg.informatik.th-darmstadt.de
  145. gryf@hrz.th-darmstadt.de (wird nicht so oft geprüft)
  146. Thomas Binder @ HD (ich tausche nur Mittwochs und Samstags)
  147.  
  148. Wer ab und zu (oder häufiger ;) ) im IRC hängt, sollte nach Gryf gucken.
  149.  
  150. Wer eigene Filesystem erstellt hat, die das Pure-C-Interface benutzen, 
  151. sollte so fair sein und mir meine Arbeit durch eine Spende honorieren. 
  152. Meine Bankverbindung:
  153.  
  154. Dresdner Bank AG Frankfurt am Main
  155. Konto-Nummer: 9 024 050 00
  156. Bankleitzahl: 500 800 00
  157.  
  158. Vielen Dank!
  159.  
  160.  
  161. 6. History
  162. ----------
  163.  
  164. Entfällt hier, bitte in den einzelnen Dateien nachlesen.
  165.  
  166.